package 哈希表;

import java.util.HashSet;

public class 快乐数 {
    public boolean happynums(int num){
        //使用hash法来判断是否出现重复
        //当我们遇到了要快速判断一个元素是否出现集合里的时候，就要考虑哈希法了
        HashSet<Integer> set = new HashSet<>();
        while (num!=1 && !set.contains(num)){
            set.add(num);
            num = getNextnumber(num);
        }
        return num==1;
    }

    private int getNextnumber(int num) {
        int res = 0;
        while (num>0) {
            int temp = num % 10;
            res += temp * temp;
            num = num / 10;
        }
        return res;

    }
}
